import { createRouter, createWebHistory } from "vue-router";
// import NotFound from "@/views/NotFound.vue";
import { useUserStore } from "@/stores/user";
import { ElMessage } from "element-plus";
import menuArr from "./menuArr";

const router = createRouter({
  history: createWebHistory(import.meta.env.BASE_URL),
  routes: menuArr
});
/* 
  登录权限
  1-在路由配置 给meta字段添加 标记 requireLogin
  2-全局路由前置守卫-做判断
*/

router.beforeEach((to, from) => {
  //
  if (to.meta.requireLogin === true) {
    //需要登录
    let token = localStorage.getItem("token");
    if (token == null) {
      return { path: "/login" };
    }
  } else {
    // 不需要登录
  }
});

// 路由前置守卫中判断用户是否具有某个页面权限
router.beforeEach((to, from) => {
  let userStore = useUserStore();
  // 根据 role
  if (userStore.role == 2) {
    //超级管理员
  } else {
    //不是超级管理员--
    //  ckecedkeys 里面保存了 用户有页面的操作权限
    //  和 ckecedkeys
    console.log(userStore.checkedKeys);

    // 把静态权限数据 和 动态的权限数据  合并到一个数组
    let arr = ["登录", "首页", "404", "layout", ...userStore.checkedKeys];
    //判断要访问的页面的name 是否在 服务器返回的  权限列表中
    if (!arr.includes(to.name)) {
      ElMessage({
        message: "没有访问权限",
        type: "error"
      });
      return false;
    }
  }
});

export default router;
